home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1983-11-26 | 1.4 KB | 59 lines |
- 10 CLS:WIDTH 80:CLEAR:PRINT "Chi-Square Test":PRINT
- 28 REM Limit size of contingency tables to V1(R*C),V2(C),A(R)
- 29 REM Where R = number of rows, C = number of columns
- 30 DIM V1(4),V2(2),A(2)
- 39 REM Lines 50-150 input contingency table
- 50 INPUT "Number of rows";R
- 70 INPUT "Number of columns";C
- 80 PRINT "Contingency Table:"
- 90 FOR I=1 TO R
- 100 PRINT "Row";I
- 110 FOR J=1 TO C
- 120 PRINT " Element";J;
- 130 INPUT V1((I-1)*C+J)
- 140 NEXT J
- 150 NEXT I
- 160 PRINT
- 169 REM Add up marginal frequencies for each row
- 170 L=0:M=1
- 190 FOR I=1 TO R
- 200 FOR J=1 TO C
- 210 A(I)=A(I)+V1(M)
- 220 M=M+1
- 230 NEXT J
- 240 L=L+A(I)
- 250 NEXT I
- 260 N=R*C
- 269 REM Add up marginal frequencies for each column
- 270 FOR I=1 TO C
- 280 FOR J=1 TO N STEP C
- 290 V2(I)=V2(I)+V1(J)
- 300 NEXT J
- 310 NEXT I
- 320 Z=0
- 330 PRINT "Observed Value","Expected Value","Chi^2 Contribution"
- 340 FOR I=1 TO C
- 350 PRINT " Column";I
- 360 FOR J=1 TO R
- 369 REM P = Expected cell value
- 370 P=A(J)*V2(I)/L
- 375 X=I+(J-1)*C
- 379 REM Use Yates' correction for contiuity in 2x2 chi-square tests
- 380 IF R<>2 THEN 390
- 381 IF C<>2 THEN 390
- 382 Y=(ABS(V1(X)-P)-0.5)^2/P
- 383 GOTO 400
- 389 REM Y = chi-square contribution from this cell
- 390 Y=(V1(X)-P)^2/P
- 399 REM Z = Total chi-square value
- 400 Z=Z+Y
- 410 PRINT " ";V1(X),,P,,Y
- 420 NEXT J
- 430 NEXT I
- 440 PRINT
- 450 PRINT "Chi-Square =";Z
- 460 PRINT "Degrees of Freedom =";(C-1)*(R-1)
- 470 PRINT :INPUT "Run again";A$
- 480 IF A$="Y" OR A$="y" THEN 10
- 500 RUN "stat"
-